The use of lookup tables is common in modern image processing applications. Lookup tables are used to allow an empirically derived function to be applied to the data in an image processing workflow.
Moreover, lookup tables can be used to apply a complex analytic function to the data in an image processing workflow so as to reduce the computational load associated with a complex function, for example a logarithmic function.
Furthermore, in many other image processing pipelines, several 1-D lookup tables can be applied sequentially to an image. These lookup tables typically only carry eight (8) bits of accuracy, and thus, sequential application of two or more of the lookup tables may introduce significant quantization errors into the image. These quantization errors are typically manifested as either loss of detail when several input gray levels map to the same output gray value or as contouring when the difference in the output gray levels is a significantly larger than that of the input gray levels of the image.
One solution is to expand the image path to more bits; e.g., ten (10) bits, but this solution requires significant resources and additionally carries the burden of increased cost of implementation.
Typically, the effects of the resultant quantization error are accepted.
During the design and construction of the image path, the sequential lookup tables are defined, and the sequential lookup tables may be combined by using the underlying analytic functions before quantization.
However, there are cases in which one or more of the lookup tables may be generated during the use of the machine, for example, in response to user input or to changes in the underlying hardware or reproduction devices. In such a case, a method to combine lookup tables that are fixed with lookup tables that change in response to an external event that avoids a loss of accuracy would be preferable to reduce quantization errors.
As an example, FIG. 1 shows in schematic form an image path with two lookup tables (106, 108). The image path comprises an interface 102 that interfaces with the input device. Interface 102 accepts the digital image from the input image source and may format the digital image or convert the digital image in many different conventional, as would be appreciated to by those skilled in the art.
The output of interface 102 is passed to processor 104 where any further processing of the image takes place. Such further processing can include conversion of color space, magnification of the image, storage of the image, or other image processing operations.
The output of this stage is commonly passed on for printing. In such a case, it is also common to adjust the tone curve of the image to match the characteristics of the printing engine. Since this is usually an empirically derived characteristic, it is commonly implemented as a lookup table 106.
However, it is also common to allow the user of the machine to adjust the output characteristics. One output characteristic that the user may be allowed to adjust is the tone curve.
To conventionally adjust the tone curve, the digital image passes through another lookup table where the contents of the lookup table are determined by the user's choice of modifications. Such a modification lookup table is shown as lookup table 108 of FIG. 1.
However, the actual hardware implementation may include a single lookup table. In such a case, the printer characterization lookup table must be combined or modified in a way that includes any user chosen adjustments.